Qu'est-ce que expected an assignment or function call and instead saw an expression ?

"Expected an assignment or function call and instead saw an expression" est un message d'erreur courant en programmation. Ce message est généralement affiché par le compilateur ou l'interpréteur d'un langage de programmation lorsqu'une expression est utilisée dans un contexte où une assignation ou un appel de fonction est attendu.

Par exemple, considérez le code suivant en JavaScript :

var x = 5;
if (x > 0)
  console.log("x est positif");
else
  console.log("x est négatif");

Ce code fonctionnera sans problème car il utilise correctement une expression dans le contexte d'une conditionnelle. Cependant, si nous oublions d'inclure les parenthèses après console.log dans le bloc if, le message d'erreur "Expected an assignment or function call and instead saw an expression" sera affiché :

var x = 5;
if (x > 0)
  console.log "x est positif"; // Erreur ici
else
  console.log "x est négatif";

Ce message d'erreur nous indique que nous devrions inclure des parenthèses après console.log pour indiquer qu'il s'agit d'un appel de fonction.

Dans d'autres cas, ce message d'erreur peut également se produire lorsque l'on utilise des affectations de valeurs (=) au lieu de comparaisons (== ou ===) dans des conditions, ou lorsqu'on essaie d'utiliser une expression non autorisée dans un endroit spécifique du code.

En bref, ce message d'erreur signifie généralement que le langage de programmation s'attendait à voir une assignation (affectation) de valeur ou un appel de fonction à cet endroit, mais a rencontré une expression qui ne correspondait pas à cette attente. Il est important de comprendre le contexte et les règles syntaxiques du langage utilisé pour corriger ce type d'erreur.